<?php
include_once '../model/Motorista.php';
include_once '../config/Connection.php';
include_once '../classes/factory/FactoryMotorista.php';

/**
 * Description of MotoristaDAO
 *
 * @author GIOVANI
 */
class testeMotoDAO {

    private $con;

    public function __construct() {
        $this->con = Connection::getConnection();
    }

    //salvar primeira etapa
    public function salvarStep1(Motorista $motorista) {
        if ($motorista->getId() != null) {
            $this->updateStep1($motorista);
        } else {
            $this->insertStep1($motorista);
        }
    }
    
    //seleciona apenas um motorista
    public function selectThisMotorista($id){
        $query = "SELECT * FROM pessoa WHERE id_pessoa = '$id'";
        $motorista = null;
        foreach ($this->con->query($query) as $linha) {
            $motorista = new Motorista($linha['nome'], 
                                       $linha['sobrenome'], 
                                       $linha['email'], 
                                       $linha['senha'], 
                                       $linha['genero'], 
                                       $linha['aniversario']);
            $motorista->setId($linha['id_pessoa']);
        }
        return $motorista;
    }
    
    //deleta um motorista
    public function deleteThisMotorista($id){
        $query = "DELETE FROM pessoa WHERE id_pessoa = '$id'";
        $this->con->exec($query);
    }

    //---------------------------------------------------
    //funções de uso interno
    
    private function updateStep1($motorista) {
        $nome = $motorista->getNome();
        $sobrenome = $motorista->getSobrenome();
        $email = $motorista->getEmail();
        $senha = md5($motorista->getSenha());
        $genero = $motorista->getGenero();
        $aniversario = $motorista->getAniversario();
        $telefone_fixo = $motorista->getTelefone_fixo();
        $telefone_movel = $motorista->getTelefone_movel();
        $fk_endereco = $motorista->getFk_endereco();
        $fk_documentos = $motorista->getFk_documentos();
        $fk_nacionalidade = $motorista->getFk_nacionalidade();
        $fk_niveis = $motorista->getFk_niveis();

        $id = $motorista->getId();
        $query = "UPDATE pessoa
                      SET    nome = '$nome',
                             sobrenome = '$sobrenome',
                             email = '$email',
                             senha = '$senha',
                             genero = '$genero',
                             aniversario = '$aniversario'
                      WHERE  id_pessoa = $id";
        
        $this->con->exec($query);
    }

    private function insertStep1($motorista) {
        $nome = $motorista->getNome();
        $sobrenome = $motorista->getSobrenome();
        $email = $motorista->getEmail();
        $senha = md5($motorista->getSenha());
        $genero = $motorista->getGenero();
        $aniversario = $motorista->getAniversario();

        $query = "INSERT INTO pessoa (
                             nome,
                             sobrenome,
                             email,
                             senha,
                             genero,
                             aniversario)
                      VALUES('$nome',
                             '$sobrenome',
                             '$email',
                             '$senha',
                             '$genero',
                             '$aniversario')";
        
        if($this->con->exec($query)){
            require_once '../view/splashCadastroSucesso.php';
        }
    }
    
    public function getMotoristaByLogin($values){
        $motorista = null;
        $email = $values['email'];
        $query = "SELECT id_pessoa,
                           nome,
                           sobrenome,
                           email,
                           senha,
                           genero,
                           aniversario                           
                    FROM pessoa
                    WHERE email = '$email'";

        foreach ($this->con->query($query) as $linha) {
           $motorista = FactoryMotorista::criaMotorista($linha);
           $motorista->setId($linha['id_pessoa']);
        }
        return $motorista;
    }
}

?>
